Software Engineering -------------------- [(Up)](../../README.md#topics) | _See also: [Formal Specification](../Formal%20Specification/README.md#formal-specification), [Reactive Systems](../Reactive%20Systems/README.md#reactive-systems), [Agile Development](../Agile%20Development/README.md#agile-development)_ - - - - ### Web resources [1968 NATO Software Engineering Conference](https://isthisit.nz/posts/2022/1968-nato-software-engineering-conference/) ★★ [💭](commentary/Chris%20Pressey.md#1968-nato-software-engineering-conference) [language agnostic - What is the difference between concurrency and parallelism? - Stack Overflow](https://stackoverflow.com/questions/1050222/what-is-the-difference-between-concurrency-and-parallelism) ★ [c\# - Exceptions, error codes and discriminated unions - Software Engineering Stack Exchange](https://softwareengineering.stackexchange.com/questions/372034/exceptions-error-codes-and-discriminated-unions) ★ [safety - How deep is redundancy on avionics computers? - Aviation Stack Exchange](https://aviation.stackexchange.com/questions/44349/how-deep-is-redundancy-on-avionics-computers) ★ [onion architecture - Is it really possible to decouple the UI from the business logic? - Software Engineering Stack Exchange](https://softwareengineering.stackexchange.com/questions/423680/is-it-really-possible-to-decouple-the-ui-from-the-business-logic) ★ [Is it typical for there to be no real design prior to someone being assigned a task? - Software Engineering Stack Exchange](https://softwareengineering.stackexchange.com/questions/411106/is-it-typical-for-there-to-be-no-real-design-prior-to-someone-being-assigned-a-t)) ★ [How do we get a tech team to make a big technical change? - Stack Overflow Blog](https://stackoverflow.blog/2023/05/10/how-do-we-get-a-tech-team-to-make-a-big-technical-change/) ★ [Classic SE Mistakes by Steve McConnell • Jonathan Cook](https://www.cs.nmsu.edu/~jcook/posts/classic-se-mistakes-mcconnell/) ★★ [💭](commentary/Chris%20Pressey.md#classic-se-mistakes-by-steve-mcconnell--jonathan-cook) [Making Wrong Code Look Wrong -- Joel on Software](https://www.joelonsoftware.com/2005/05/11/making-wrong-code-look-wrong/) ★★★ [💭](commentary/Chris%20Pressey.md#making-wrong-code-look-wrong----joel-on-software) [Things You Should Never Do, Part I -- Joel on Software](https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/) ★★★ [The Twelve-Factor App](https://12factor.net/) ★ [Use One Big Server - Speculative Branches](https://specbranch.com/posts/one-big-server/) ★ [💭](commentary/Chris%20Pressey.md#use-one-big-server---speculative-branches) _(in [Game Development](../Game%20Development/README.md#game-development))_ [terminology - What exactly is a softlock? - Arqade](https://gaming.stackexchange.com/questions/357095/what-exactly-is-a-softlock) ★ _(in [Game Development](../Game%20Development/README.md#game-development))_ [exceptions - When to carry on with a buggy game state versus terminate the process? - Game Development Stack Exchange](https://gamedev.stackexchange.com/questions/186888/when-to-carry-on-with-a-buggy-game-state-versus-terminate-the-process) ★ _(in [PLDI](../PLDI/README.md#pldi))_ [What blocks Ruby, Python to get Javascript V8 speed? - Stack Overflow](https://stackoverflow.com/questions/5168718/what-blocks-ruby-python-to-get-javascript-v8-speed) ★ _(in [PLDI](../PLDI/README.md#pldi))_ [Why is JavaScript not compiled to bytecode before sending over the network? - Software Engineering Stack Exchange](https://softwareengineering.stackexchange.com/questions/402250/why-is-javascript-not-compiled-to-bytecode-before-sending-over-the-network) ★ ### Papers Programming as Theory Building (online @ [pages.cs.wisc.edu](https://pages.cs.wisc.edu/~remzi/Naur.pdf)) 🏛️ [💭](commentary/Chris%20Pressey.md#programming-as-theory-building) Why software jewels are rare (online @ [www.yodaiken.com](https://www.yodaiken.com/papers/Why_software_jewels_are_rare.pdf)) ★★★ [💭](commentary/Chris%20Pressey.md#why-software-jewels-are-rare) Send-Receive Considered Harmful (online @ [dl.acm.org](https://dl.acm.org/doi/10.1145/963778.963780)) ★ [💭](commentary/Chris%20Pressey.md#send-receive-considered-harmful) Computer Science Education: Where Are the Software Engineers of Tomorrow? (online @ [www.cs.fsu.edu](http://www.cs.fsu.edu/~gaitrosd/classes/CEN4010/Articles/DewarSchonberg.pdf)) ★ [💭](commentary/Chris%20Pressey.md#computer-science-education-where-are-the-software-engineers-of-tomorrow) Use of Formal Methods at Amazon Web Services (online @ [lamport.azurewebsites.net](https://lamport.azurewebsites.net/tla/formal-methods-amazon.pdf)) ★★★ [💭](commentary/Chris%20Pressey.md#use-of-formal-methods-at-amazon-web-services) _(in [Model Checking](../Model%20Checking/README.md#model-checking))_ [Direct Model-checking of SysML Models](https://www.scitepress.org/Papers/2021/102563/102563.pdf) ★ [💭](commentary/Chris%20Pressey.md#direct-model-checking-of-sysml-models) _(in [Reactive Systems](../Reactive%20Systems/README.md#reactive-systems))_ Statecharts (online @ [www.inf.ed.ac.uk](https://www.inf.ed.ac.uk/teaching/courses/seoc/2005_2006/resources/statecharts.pdf)) ★★★ [💭](commentary/Chris%20Pressey.md#statecharts) _(in [Reactive Systems](../Reactive%20Systems/README.md#reactive-systems))_ State Machines for Event-Driven Systems (online @ [barrgroup.com](https://barrgroup.com/embedded-systems/how-to/state-machines-event-driven-systems)) ★★★ [💭](commentary/Chris%20Pressey.md#state-machines-for-event-driven-systems) _(in [Reactive Systems](../Reactive%20Systems/README.md#reactive-systems))_ Misunderstandings about state machines (online @ [www.stateworks.com](https://www.stateworks.com/active/download/wagf04-2-state-machine-misunderstandings.pdf)) ★★★ [💭](commentary/Chris%20Pressey.md#misunderstandings-about-state-machines) ### Books The Mythical Man-Month (online @ [archive.org](https://archive.org/details/MythicalManMonth), [archive.org](https://archive.org/details/book-brooks-1974-the-mythical-man-month-essays-on-software-engineering-2nd-edition)) (borrow with print disabilities @ [archive.org](https://archive.org/details/mythicalmonth00broo), [archive.org](https://archive.org/details/mythicalmanmonth00broo)) ★★★ Object-Oriented Modelling and Design (borrow @ [archive.org](https://archive.org/details/objectorientedmo00rumb)) ★★★ Advanced Programming in the Unix Environment (borrow @ [archive.org](https://archive.org/details/isbn_9789812358813)) (borrow with print disabilities @ [archive.org](https://archive.org/details/advancedprogramm00stev), [archive.org](https://archive.org/details/advancedprogramm0000stev)) 🏛️ _(in [Philosophy](../Philosophy/README.md#philosophy))_ Patterns of Software: Tales from the Software Community (online @ [archive.org](https://archive.org/details/PatternsOfSoftware)) (borrow @ [archive.org](https://archive.org/details/patternsofsoftwa00gabr)) ★★★ [💭](commentary/Chris%20Pressey.md#patterns-of-software-tales-from-the-software-community)